"""
Defines all the external repositories and dependencies for rules_ios.
"""

# Defines the rules_ios bzlmod module.
# Version is updated during release to the registry.
module(
    name = "rules_ios",
    version = "3.1.2",
    bazel_compatibility = [">=5.0.0"],
    compatibility_level = 1,
    repo_name = "build_bazel_rules_ios",
)

# Declare the bzlmod dependencies needed by rules_ios and users of rules_ios
bazel_dep(
    name = "apple_support",
    version = "1.11.1",
    repo_name = "build_bazel_apple_support",
)
bazel_dep(
    name = "rules_apple",
    version = "3.1.1",
    repo_name = "build_bazel_rules_apple",
)
bazel_dep(
    name = "rules_cc",
    version = "0.0.6",
)
bazel_dep(
    name = "rules_swift",
    version = "1.13.0",
    repo_name = "build_bazel_rules_swift",
)
bazel_dep(
    name = "bazel_skylib",
    version = "1.4.2",
)

# Declare the development dependencies needed for rules_ios development
bazel_dep(
    name = "buildifier_prebuilt",
    version = "6.1.0",
    dev_dependency = True,
)
bazel_dep(
    name = "rules_pkg",
    version = "0.9.1",
    dev_dependency = True,
)
bazel_dep(
    name = "stardoc",
    version = "0.6.2",
    dev_dependency = True,
    repo_name = "io_bazel_stardoc",
)

rules_apple_api_deps = use_extension("//rules:module_extensions.bzl", "rules_apple_api_deps")
use_repo(
    rules_apple_api_deps,
    "rules_apple_api",
)

rules_ios_bazel_version_deps = use_extension("//rules:module_extensions.bzl", "rules_ios_bazel_version_deps")
use_repo(
    rules_ios_bazel_version_deps,
    "rules_ios_bazel_version",
)

# Load non-bzlmod dependencies from rules_ios
non_module_deps = use_extension("//rules:module_extensions.bzl", "non_module_deps")
use_repo(
    non_module_deps,
    "arm64-to-sim",
    "com_github_yonaskolb_xcodegen",
    "tart",
)

non_module_dev_deps = use_extension(
    "//rules:module_extensions.bzl",
    "non_module_dev_deps",
    dev_dependency = True,
)
use_repo(
    non_module_dev_deps,
    "GoogleMobileAdsSDK",
    "TensorFlowLiteC",
    "com_github_apple_swiftcollections",
)

# Configure Xcode
xcode_configure = use_extension(
    "//rules:module_extensions.bzl",
    "xcode_configure",
    dev_dependency = True,
)
xcode_configure.configure(
    remote_xcode_label = "",
    xcode_locator_label = "//tools/toolchains/xcode_configure:xcode_locator.m",
)

# Load non-bzlmod dependencies used in this repo from rules_swift
swift_non_module_deps = use_extension("@build_bazel_rules_swift//swift:extensions.bzl", "non_module_deps")
use_repo(
    swift_non_module_deps,
    "build_bazel_rules_swift_index_import",
    "build_bazel_rules_swift_local_config",
)

# Load non-bzlmod dependencies used in this repo from rules_apple
apple_non_module_deps = use_extension("@build_bazel_rules_apple//apple:extensions.bzl", "non_module_deps")
use_repo(
    apple_non_module_deps,
    "xctestrunner",
)
